package com.xbongbong.saas.service;

import com.xbongbong.distributor.dto.DistributorContractOutStockDeleteBatchDTO;
import com.xbongbong.distributor.dto.DistributorContractOutStockEditAttrUpdateDTO;
import com.xbongbong.distributor.vo.DistributorContractOutStockDeleteBatchVO;
import com.xbongbong.paas.field.FieldAttrEntity;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.businessdata.pojo.dto.FormatExplainDTO;
import com.xbongbong.pro.formexplain.pojo.dto.HandlerExplainInLinkItemDTO;

import java.util.List;

/**
 * 出库单接口
 *
 * @author chaoxiong.lei
 * @date 19:07 2019/1/20
 * @since v1.0
 **/
public interface OrderOutstockService extends SaasSaveService {
    /**
     * 编辑时格式化解释
     *
     * @param formatExplainDTO 入参
     * @throws XbbException 异常
     */
    void formatUpdateExplain(FormatExplainDTO formatExplainDTO) throws XbbException;
    /**
     * 批量删除出库单
     * @author 吴峰
     * @date 2019/3/15 14:34
     * @param distributorContractOutStockDeleteBatchDTO
     * @return com.xbongbong.pro.outstock.pojo.vo.OutstockDeleteBatchVO
     * @throws XbbException 业务异常
     */
    DistributorContractOutStockDeleteBatchVO deleteBatch(DistributorContractOutStockDeleteBatchDTO distributorContractOutStockDeleteBatchDTO) throws XbbException;

    /**
     * 批量某个字段
     * @author 吴峰
     * @date 2019/3/20 14:27
     * @param distributorContractOutStockEditAttrUpdateDTO
     * @return void
     * @throws XbbException 业务异常
     */
    void batchEditAttr(DistributorContractOutStockEditAttrUpdateDTO distributorContractOutStockEditAttrUpdateDTO) throws XbbException;
    /**
     * 关联新建时格式化解释
     * @author 吴峰
     * @date 2019/4/1 21:56
     * @param handlerExplainInLinkItemDTO
     * @return void
     * @throws XbbException 业务异常
     */
    void formatLinkAddExplain(HandlerExplainInLinkItemDTO handlerExplainInLinkItemDTO) throws XbbException;

    void formatBatchExplain(List<FieldAttrEntity> fieldAttrEntityList, String enable);

    /**
     * 新建时格式化解释
     *
     * @param formatExplainDTO 入参
     * @throws XbbException 异常
     * @author lcx
     * @date 2019-02-13 20:53
     */
    Boolean formatAddExplain(FormatExplainDTO formatExplainDTO) throws XbbException;

}